package net.lzzy.practices.entities;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author liaodcc.
 */
@Entity
@Getter
@Setter
public class Question extends BaseEntity{
    /**
     * 0 代表单选
     * 1 代表判断
     * 2 代表不定项选择
     */
    @Transient
    public static final int TYPE_SINGLE = 0;
    @Transient
    public static final int TYPE_JUDGE = 1;
    @Transient
    public static final int TYPE_MULTI = 2;
    private int type;
    private String content;
    private String analysis;
    private int ordinal;
    @OneToMany(cascade = CascadeType.PERSIST,mappedBy = "question")
    private List<Option> options = new ArrayList<>();
    @ManyToOne
    private Chapter chapter;

    public Question(){}

    @JsonManagedReference
    public List<Option> getOptions() {
        return options;
    }
    @JsonBackReference
    public Chapter getChapter() {
        return chapter;
    }
}
